some stuff added, not finished now