Not yet finished with refactorization