Adding annotation code and tests