defined classes, wrote functions for retrieving gene annotation tables

I think by pull request it's easier for you to review and merge them.

Zichen