Some more annotation, some refactoring