works, but not ideal form yet.