add Origin object
explicit return types for Vector subtype methods