cleanup, handling function calls followed by operations
better unit tests