I think you're right. It would remove the request classes' dependency on CoAP which is actually only an implementation detail of of how Lightweight M2M operations are implemented, i.e. if the LIghtweight M2M spec would change (and it probably will) we would need to make changes only to the Visitor (in this case RequestHandler). I will think about it a little and make some changes. However, because of the mutual dependency between the concrete Visitor (CoapBasedRequestHandler) and the concrete Visitable (e.g. ReadRequest) I would move the RequestHandler to the same package as the messages (reuquest objects)