Working implementation, needs some cleanup
styling only