refactor from eduridebase