20140812 refactoring