Added main abstract classes

Added JavaFX-like properties, stream resources and useful listeners.