major restructure on data types and annotations