massive revision + checks