Initial implementation
Overall improvements