Initial templatization; doesn't work
Works with floats
Added helper constructors