strict implementation now works