inital code, still working on it