shapes and type aliases