refactoring half-way through
added the new elements