Taking a 'how to' perspective rather than a narrative perspective
Java has enough repetition as it is. No need to make it worse
Abilities should be in screenplay or as libraries pluggable into screenplay