added sound, code optimizing