Basic functionality together. Tests written.