Add some forward declarations.
Removed useless "init" methods, using ctors instead.
Fixed some compiler warnings.
Handling window extents.