updated with initial version