refactored extensions into single file