migrate to scala
cleanup to better handle deck overlay disposal