added tests for different approaches