New separated version, not finished