Working
adds chain of responsibility pattern