change some denominations, refactor architecture