finally pushed this miniproject as a separate repo