Refactored the builder and all elements