basic functionality working. Not polished at all.