add hash & equals
make singleton
fix cast
fix hacky startup logic (yey javafx...)