based on beangle-scala 14