main functionality
added test