refactor mount to allow customization