Featherweight Jigsaw - Replacing inheritance by composition in Java-like languages