Basic functions working. Need to do more testing.