add point type
make invalid vectors unrepresentable
more la ops