latest changes: all tested