initalization
functional with serious bug