improve constructor, add init instance