finished basic functions. Needs styling and some finess