implement complex tests