Adding some Annotations and better support for Interfaces