Implement a better constructor scheme, where the first argument is a dummy class which specified what to do. This would allow a construct where a surface can be loaded from an image file without first having to create an unitialized object.
Build a status function allowing for easier access to the flags. This can be done using a bitfield which would allow for checking for multiple features at once.