2014.12.27 refactor