better site structure, try to add unit tests