Fist commit with rough implementation