added ability to have optional init() method called in annotation sub classes