Reworked to use external models closes #1 #2