optimization
created some initial unit tests