Requirements fulfilled; maybe some minor tinkering left