basic functionality completed with some UI changes