separated tests by purposes