added interface but must be fixed, code breaks