basic functionality working. need better validation