separate client related sources to public

use agility js to build interface