More thread cleaning
Made more abstraction in Surface inheritance