immutable board + using app trait