basic functionality working, still need to add validation and so on