porting over more vision stuff