(Dirty commit: compilation untested) Movement module done.