Move some abstract fields to constructor parameters