updated code, clean etc.