refactoring and make bound object writable