Adding Component based GUI API, designed after java swing