fix #9: add floating precision attribute
fix #8: refactoring, API cleaning and test suite

includes:
 - use new-style properties
 - move consistency checks over to setters
 - cleaning and refactoring
 - update test suite