refactor accordingly to en passant feature