type annotation has revaled redundancy with things in the compilation context so time to re-factor