working on types stuff