Alternative Manager implementation using annotations and reflection.
Works perfectly and is much cleaner :)